package ${mapper};

import ${dto}.${table.alias}DTO;
import ${param}.${table.alias}Param;
import ${po}.${table.alias}PO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
<#if ifNeedStatistics==true>
import ${counts}.CountsDTO;
</#if>

/**
 * @author ${author}
 * @version 1.0 ${date}
 */
@Mapper
public interface ${table.alias}Mapper {

    List<${table.alias}PO> queryBySelective(${table.alias}Param ${table.propertyName}Param);

    /**
     * 根据ID查询
<#if ifSpiltByEnt==true>     * @param entNum 险企号</#if>
     * @param id ID
     * @return ${table.remark}
     */
    ${table.alias}PO selectByPrimaryKey(<#if ifSpiltByEnt==true>@Param("entNum") String entNum,</#if>@Param("id") String id);

    /**
     * 根据ID列表查询查询
<#if ifSpiltByEnt==true>     * @param entNum 险企号</#if>
     * @param idList ID列表
     * @return 明细列表
     */
    List<${table.alias}PO> selectByPrimaryKeys(<#if ifSpiltByEnt==true>@Param("entNum") String entNum,</#if> @Param("idList") List<String> idList);

    int insert(<#if ifSpiltByEnt==true>@Param("entNum") String entNum,</#if> @Param("record") ${table.alias}PO record);

    int insertSelective(<#if ifSpiltByEnt==true>@Param("entNum") String entNum,</#if> @Param("record") ${table.alias}PO record);

    int deleteByPrimaryKey(<#if ifSpiltByEnt==true>@Param("entNum") String entNum,</#if> @Param("id") String id);

    int deleteByPrimaryKeys(<#if ifSpiltByEnt==true>@Param("entNum") String entNum,</#if> @Param("idList") List<String> idList);

    int updateByPrimaryKeySelective(<#if ifSpiltByEnt==true>@Param("entNum") String entNum,</#if> @Param("record") ${table.alias}PO record);

    int updateByPrimaryKey(<#if ifSpiltByEnt==true>@Param("entNum") String entNum,</#if> @Param("record") ${table.alias}PO record);

    /**
     * 列表查询  带高级查询
     * @param ${table.propertyName}Param 查询参数
     * @return 明细列表
     */
    List<${table.alias}DTO> listByParam(${table.alias}Param ${table.propertyName}Param);

<#if ifNeedStatistics==true>
    /**
     * 笔数金额统计 带高级查询
     * @param ${table.propertyName}Param 查询参数
     * @return 统计结果
     */
    CountsDTO countByParam(${table.alias}Param ${table.propertyName}Param);
</#if>

 }